/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package quizzempire.model;

import java.io.File;
import java.util.Observable;;
import quizzempire.model.statemachine.State;import quizzempire.model.statemachine.State;

/**
 *
 * @author Victor
 */
public abstract class IModel extends Observable {

    public abstract String getAbout();
    public abstract void startGame();
    public abstract State getState();

    public abstract void restart();

    public abstract void setName(String text);
    public abstract void setAutor(String text);
    public abstract void setDescription(String text);
    public abstract void setGenre(String text);
    public abstract void setPassword(String pass);
    public abstract void setNQuestions(int[] nQuestions);
    public abstract void setDifficulties(boolean[] difficulties);
    public abstract void editQuestons();
    public abstract IQuizz getQuizzViewer();
    public abstract void addQuestion(String text);
    public abstract void back();
    public abstract void removeQuestion(int selectedid);
    public abstract void setQuestionDifficulty(int selectedid, int i);
    public abstract void setQuestionText(int selectedid, String text);
    public abstract void setQuestionAnswers(int selectedid, String[] a);
    public abstract void setIndexCorrect(int selectedid, int correct);

    public abstract void setQuestionName(int selectedid, String text);

    public abstract void nextQuestion();
    public abstract void playAgain();

    public abstract IQuestion getQuestionViewer();
    public abstract int getCorrectas();
    public abstract int getDifficulty();

    public abstract String getQuizzesFolder();

    public abstract void saveQuizz(String string);

    public abstract void createQuizz();

    public abstract String[] getQuizzList();

    public abstract void loadQuizz(String selectedFile);

    public abstract IQuizz getQuizzInfo(int selectedIndex);

    public abstract void startGame(int selectedIndex, int d);

    public abstract void setAnswer(int i);

    public abstract void loadQuizzData(int selectedIndex, String string);

    public abstract void editQuizz();
}
